package com.mazihao.emos.db.dao;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * @author mazihao
 */
@Repository
public class MessageDao {
//    @Autowired
//    private MongoTemplate mongoTemplate;
//
//    /**
//     * 新增消息数据
//     * @param messageEntity
//     * @return
//     */
//    public String insert(MessageEntity messageEntity) {
//        Date sendTime = messageEntity.getSendTime();
//        sendTime = DateUtil.offset(sendTime, DateField.HOUR, 8);
//        messageEntity.setSendTime(sendTime);
//        messageEntity = mongoTemplate.save(messageEntity);
//        return messageEntity.get_id();
//    }
//
//    /**
//     * 分页查询消息列表
//     * @param userId
//     * @param start
//     * @param length
//     * @return
//     */
//    public List<HashMap> searchMessageByPage(int userId, long start, int length) {
//        JSONObject jsonObject = new JSONObject();
//        jsonObject.set("$toString", "$_id");
//        Aggregation aggregation = Aggregation.newAggregation(
//            Aggregation.addFields().addField("id").withValue(jsonObject).build(),
//                Aggregation.lookup("message_ref", "id", "messageId", "ref"),
//                Aggregation.match(Criteria.where("ref.receiverId").is(userId)),
//                Aggregation.sort(Sort.by(Sort.Direction.DESC, "sendTime")),
//                Aggregation.skip(start),
//                Aggregation.limit(length)
//        );
//        AggregationResults<HashMap> results = mongoTemplate.aggregate(aggregation, "message", HashMap.class);
//        List<HashMap> list = results.getMappedResults();
//        list.forEach(one -> {
//            List<MessageRefEntity> refList = (List<MessageRefEntity>) one.get("ref");
//            MessageRefEntity messageRefEntity = refList.get(0);
//            Boolean readFlag = messageRefEntity.getReadFlag();
//            String refId = messageRefEntity.get_id();
//            one.put("readFlag", readFlag);
//            one.put("refId", refId);
//            one.remove("ref");
//            one.remove("_id");
//            Date sendTime = (Date) one.get("sendTime");
//            sendTime = DateUtil.offset(sendTime, DateField.HOUR, -8);
//            String today = DateUtil.today();
//            if (today.equals(DateUtil.date(sendTime).toDateStr())) {
//                one.put("sendTime", DateUtil.format(sendTime, "HH:mm"));
//            } else {
//                one.put("sendTime", DateUtil.format(sendTime, "yyyy/MM/dd"));
//            }
//        });
//        return list;
//    }
//
//    /**
//     * 根据id查询消息数据
//     * @param id
//     * @return
//     */
//    public HashMap searchMessageById(String id) {
//        HashMap map = mongoTemplate.findById(id, HashMap.class, "message");
//        Date sendTime = (Date) map.get("sendTime");
//        sendTime = DateUtil.offset(sendTime, DateField.HOUR, -8);
//        map.replace("sendTime", DateUtil.format(sendTime, "yyyy-MM-dd HH:mm"));
//        return map;
//    }
}
